概述
Markdown 是一种轻量级标记语言,创始人为John Gruber,其特点是格式简单,源文件容易阅读和编辑。适合撰写笔记,使作者的注意力集中于内容而非形式。
真正的论述是不需要花哨的形式的,当对于当前主流的富编辑器来说,Markdown只保留了基本的格式定义以及函数计算,以下介绍Markdown基础语法。
基本语法
标题
标题格式有两种形式:
- Atx方式–通过在[标题内容]前输入特定数量的井号
#
来实现 - Setext方式–通过底线,利用
=
(最高阶标题)和-
(第二阶标题)
一级标题
=============
二级标题
-------------
段落和换行
一个Markdown段落是有一个或多个连续的文本行组成,他的前后要有一个以上的空行
「由一个或多个连续的文本行组成」这句话其实暗示了 Markdown 允许段落内的强迫换行(插入换行符),这个特性和其他大部分的 text-to-HTML 格式不一样(包括 Movable Type 的「Convert Line Breaks」选项),其它的格式会把每个换行符都转成
<br />
标签
Markdown的换行方式比较特殊,在编辑页面一般情况下的回车会被Markdown无视,如果想要换行需要在段落最后输入两个以上的空格,但在部分特殊字符后面回车还是有效的,比如标题表示#后面不需要空格。
引用
单行引用
在每行前面加入>
即可以实现,效果如下这是一个单行引用
多行引用
可以用单行引用模式实现,只需要在每行前面加入>
,效果如下这是多行引用第一行
这是多行引用第二行同时Markdown也提供了一种人性化(偷懒)模式,对于已经输入好的段落可以只在第一行最前端加入
>
,效果如下这个一个段落这个一个段落这个一个段落这个一个段落这个一个段落这个一个段落这个一个段落这个一个段落这个一个段落
嵌套引用
想要实现引用的引用,只需根据层次加上不同数量的>
,效果如下第一层第一个引用
第二层引用
第一层第二个引用
列表
Markdown遵照国际惯例,提供有序和无序两种列表,无论是有序还是无序都是在行前加入标识符
无序列表支持三种形式的标识符,分别是*
、+
、-
有序列表则使用【数字】+【英文据点】+【空格】
嵌套列表则在首行缩进,方式和嵌套引用雷同,不再赘述
代码块
由于Markdown写作内容通常是和程序相关的,通常这些块我们不希望程序去按照一般格式排版和转译,只想要他原来的样子。
要在Markdown建立代码块,需要要在行首缩进4个空格或一个制表符(Tab)就可以实现。
我是一个普通段落
printf("大家好,我是一个代码块")
printf("尽管我的格式很丑")
printf("但请不要把我格式化")
printf("就让我一直丑下去吧")
需要注意的是代码块前必须要换行空出一行,不然Markdown会把它当做上一个段落的后续,就会变成这样
我是一个普通段落
printf(“大家好,我是一个代码块”)
printf(“尽管我的格式很丑”)
printf(“但请不要把我格式化”)
printf(“就让我一直丑下去吧”)
强调
Markdown强调分为两级,第一级是斜体,第二级是粗体,标识符是*
或者_
,使用方式很简单只需要用标识符包住强调内容
*single asterisks*
_single underscores_
**double asterisks**
__double underscores__
single asterisks
single underscores
double asterisks
double underscores
注意:如果你的*
或者_
前后有空格的话,他们就会被当做普通符号;如果你想在文字插入普通的*
和_
,请在其前面加入\
进行转译
链接
Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用尖括号包起来, Markdown 就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如:
<http://www.baidu.com/>
会变成
如果想要把链接文字转换,需要按照如下格式
[链接文字](url "链接说明")
[百度](http:www.baidu.com "百度一下")
如果你觉得在同一个段落输入多个链接很丑,不够直观,比如下面
这是[百度](http:www.baidu.com "百度一下,你就知道"),这是
[谷歌](https:www.google.com )
可以按照另一种形式实现
这是[百度][1],这是[谷歌][2]
[1]:http:www.baidu.com "百度一下,你就知道"
[2]:https://www.google.com
图片链接
Markdown图片链接实现方式基本完全一样,唯一要注意的是在前面加一个!
表示图片,如下

如果你想对图片进行裁剪缩放的话,目前各个图床基本都有实现接口,比如七牛,详情戳七牛API
分隔线
你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
* * *
***
*****
- - -
---------------------------------------
代码标记
如果要标记一小段行内代码,请使用 `
(反引号)包住标记内容,那如果你想要标记 `
(反引号)的话,请使用 `` ` ``
实现,如果你想要标记`` ` ``
的话,请使用``` `` ` `` ```
,依次类推
总结
关于Markdown我自己也是初学,但是因为其语法比较简单,基本20分钟就入门,之后随便写点什么,非常容易掌握,这篇博文就是我用来熟练Markdown用的,当然也作为自己的一个参考,之后也会不断更新新的内容吧,如果有疑问,请在评论区提出。
参考
[Markdown-维基百科] https://zh.wikipedia.org/zh-cn/Markdown
[Markdown 语法说明] http://wowubuntu.com/markdown/